package com.coin900.coin.service.coin;

import com.coin900.coin.persist.coin.CoinOrderVO;
import com.coin900.coin.persist.fu.FuUserWalletVO;
import com.value.mybatis.Pagination;

import java.util.List;
import java.util.Map;

/**
 * 订单
 *
 * @author shui
 * @create 2018-1-14
 */
public interface ICoinOrderService {

    List<CoinOrderVO> loadCoinOrder(Map<String, Object> params);

    List<CoinOrderVO> loadCoinOrderForPage(Pagination pagination);

    void insertCoinOrder(CoinOrderVO coinOrderVO);

    void updateCoinOrder(CoinOrderVO coinOrderVO);

    /**
     * 支付订单
     *
     * @param coinOrderVO 订单信息
     * @param walletVO    用户钱包
     */
    void doPayForTheOrder(CoinOrderVO coinOrderVO, FuUserWalletVO walletVO);

    void deleteCoinOrder(CoinOrderVO coinOrderVO);

    /**
     * 正在进行的项目
     * 支付之后将代币添加到用户的钱包中，并且处于锁定状态
     *
     * @param coinOrderVO
     */
    void doPayForTheOrderWhenProjectIsRelease(CoinOrderVO coinOrderVO);

}